package core.model;

public class Producto extends Subcategoria {
	private String nombre, descripcion, unidad, codigo_barras;
	private int codigo_subcategoria;
	private double cantidad;
	private float precio;

	/**
	 * constructor sin parametros
	 */
	public Producto() {
		super();
	}

	/**
	 * constructor con los siguientes parametros
	 * @param codigo_barras
	 * @param nombre
	 * @param descripcion
	 * @param cantidad
	 * @param unidad
	 */
	public Producto(String codigo_barras, String nombre, String descripcion,
			double cantidad, String unidad) {
		super();
		this.codigo_barras = codigo_barras;
		this.nombre = nombre;
		this.descripcion = descripcion;
		this.cantidad = cantidad;
		this.unidad = unidad;
	}

	/**
	 * constructor con los siguientes parametros
	 * @param codigo_barras
	 * @param nombre
	 * @param descripcion
	 * @param cantidad
	 * @param unidad
	 * @param codigo_subcategoria
	 */
	public Producto(String codigo_barras, String nombre, String descripcion,
			double cantidad, String unidad, int codigo_subcategoria) {
		super();
		this.codigo_barras = codigo_barras;
		this.nombre = nombre;
		this.descripcion = descripcion;
		this.cantidad = cantidad;
		this.unidad = unidad;
		this.codigo_subcategoria = codigo_subcategoria;
	}

	/* (non-Javadoc)
	 * @see core.model.Subcategoria#getNombre()
	 */
	public String getNombre() {
		return nombre;
	}

	/* (non-Javadoc)
	 * @see core.model.Subcategoria#setNombre(java.lang.String)
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	/**
	 * devuelve una descripcion
	 * @return descripcion
	 */
	public String getDescripcion() {
		return descripcion;
	}

	/**
	 * modifica una descripcion
	 * @param descripcion
	 */
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	/**
	 * devuelve una unidad
	 * @return unidad
	 */
	public String getUnidad() {
		return unidad;
	}

	/**
	 * modifica una unidad
	 * @param unidad
	 */
	public void setUnidad(String unidad) {
		this.unidad = unidad;
	}

	/**
	 * devuelve una cantidad
	 * @return cantidad
	 */
	public double getCantidad() {
		return cantidad;
	}

	/**
	 * modifica una cantidad
	 * @param cantidad
	 */
	public void setCantidad(double cantidad) {
		this.cantidad = cantidad;
	}

	/**
	 * devuelve un codigo_barras
	 * @return codigo_barras
	 */
	public String getCodigo_barras() {
		return codigo_barras;
	}

	/**
	 * modifica un codigo_barras
	 * @param codigo_barras
	 */
	public void setCodigo_barras(String codigo_barras) {
		this.codigo_barras = codigo_barras;
	}

	/**
	 * devuelve un precio
	 * @return precio
	 */
	public float getPrecio() {
		return precio;
	}

	/**
	 * modifica el precio
	 * @param precio
	 */
	public void setPrecio(float precio) {
		this.precio = precio;
	}

	/* (non-Javadoc)
	 * @see core.model.Subcategoria#getCodigo_subcategoria()
	 */
	public int getCodigo_subcategoria() {
		return codigo_subcategoria;
	}

	/* (non-Javadoc)
	 * @see core.model.Subcategoria#setCodigo_subcategoria(int)
	 */
	public void setCodigo_subcategoria(int codigo_subcategoria) {
		this.codigo_subcategoria = codigo_subcategoria;
	}

	/**
	 * crea y devuelve un producto con los siguientes parametros, metodo utilizado por la base de datos
	 * @param codigo_barras
	 * @param nombre
	 * @param descripcion
	 * @param cantidad
	 * @param unidad
	 * @return producto
	 */
	public static Producto createProducto(String codigo_barras, String nombre,
			String descripcion, double cantidad, String unidad) {
		Producto producto = new Producto(codigo_barras, nombre, descripcion,
				cantidad, unidad);
		return producto;
	}

	/**
	 * crea y devuelve un producto con los siguientes parametros, metodo utilizado por la base de datos
	 * @param codigo_barras
	 * @param nombre
	 * @param descripcion
	 * @param cantidad
	 * @param unidad
	 * @param codigo_subcategoria
	 * @return producto
	 */
	public static Producto createProducto(String codigo_barras, String nombre,
			String descripcion, Double cantidad, String unidad,
			int codigo_subcategoria) {
		Producto producto = new Producto(codigo_barras, nombre, descripcion,
				cantidad, unidad, codigo_subcategoria);
		return producto;
	}

}
